Ship .admx/.adml with consistent line endings across all download methods - #43
Merged
Joel Platek (VAsHachiRoku) merged 1 commit intoAug 24, 2026
Merged
Conversation
…hods
The MD5 hashes recorded in config/tiermodel-admx.json and
config/tiermodel-adml-en-US.json are computed on the files' exact bytes,
including line endings (Windows templates = CRLF, Office/Edge = LF). Because
the repository had no .gitattributes rules for these files, Git delivered them
with different line endings depending on how the code was obtained:
- TierModel-<ver>.zip release asset -> CRLF (matched, worked)
- GitHub "Source code (zip)" -> raw LF blobs (Windows files failed
the source-hash check)
- git clone with core.autocrlf=false -> LF (same failure)
Mark *.admx and *.adml as binary so Git stores and delivers their exact bytes
unchanged on every path (git archive, and clone regardless of core.autocrlf).
Re-stage the 30 affected files so their blobs match the recorded hashes. No
file content changes; this only fixes line-ending handling. Verified 60/60
hash match across git archive, autocrlf=false, and autocrlf=true.
Copilot started reviewing on behalf of
Joel Platek (VAsHachiRoku)
August 24, 2026 06:45
View session
There was a problem hiding this comment.
Pull request overview
This pull request aims to ensure the repository’s shipped ADMX/ADML administrative templates have byte-stable contents (especially line endings) across git archive / “Source code (zip)”, git clone (with varying core.autocrlf), and release assets, so the module’s MD5-based source-file verification remains consistent.
Changes:
- Add
.gitattributesrules for*.admx/*.admlto prevent Git line-ending transformations. - Re-stage multiple ADMX/ADML files so their committed blobs align with the recorded MD5 hashes used by the tool.
- No functional PowerShell logic changes; this is a packaging/byte-consistency change.
Reviewed changes
Copilot reviewed 1 out of 31 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
.gitattributes |
Adds Git attributes intended to preserve exact ADMX/ADML bytes across checkout/archive paths. |
config/admx/UserProxySettings.admx |
Re-staged to ensure consistent bytes/line endings for hash verification. |
config/admx/Sudo.admx |
Re-staged to ensure consistent bytes/line endings for hash verification. |
config/admx/NetworkProvider.admx |
Re-staged to ensure consistent bytes/line endings for hash verification. |
config/admx/LocalSecurityAuthority.admx |
Re-staged to ensure consistent bytes/line endings for hash verification. |
config/admx/LAPS.admx |
Re-staged to ensure consistent bytes/line endings for hash verification. |
config/admx/Kerberos.admx |
Re-staged to ensure consistent bytes/line endings for hash verification. |
config/admx/kdc.admx |
Re-staged to ensure consistent bytes/line endings for hash verification. |
config/admx/GameDVR.admx |
Re-staged to ensure consistent bytes/line endings for hash verification. |
config/admx/DeviceGuard.admx |
Re-staged to ensure consistent bytes/line endings for hash verification. |
config/admx/en-US/UserProxySettings.adml |
Re-staged to ensure consistent bytes/line endings for hash verification. |
config/admx/en-US/Sudo.adml |
Re-staged to ensure consistent bytes/line endings for hash verification. |
config/admx/en-US/NetworkProvider.adml |
Re-staged to ensure consistent bytes/line endings for hash verification. |
config/admx/en-US/MSS-legacy.adml |
Re-staged to ensure consistent bytes/line endings for hash verification. |
config/admx/en-US/LocalSecurityAuthority.adml |
Re-staged to ensure consistent bytes/line endings for hash verification. |
config/admx/en-US/LAPS.adml |
Re-staged to ensure consistent bytes/line endings for hash verification. |
config/admx/en-US/LanmanWorkstation.adml |
Re-staged to ensure consistent bytes/line endings for hash verification. |
config/admx/en-US/LanmanServer.adml |
Re-staged to ensure consistent bytes/line endings for hash verification. |
config/admx/en-US/KDC.adml |
Re-staged to ensure consistent bytes/line endings for hash verification. |
config/admx/en-US/GameDVR.adml |
Re-staged to ensure consistent bytes/line endings for hash verification. |
config/admx/en-US/DeviceGuard.adml |
Re-staged to ensure consistent bytes/line endings for hash verification. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+10
to
+11
| *.admx binary | ||
| *.adml binary |
Joel Platek (VAsHachiRoku)
deleted the
fix/admx-line-endings-gitattributes
branch
August 24, 2026 07:06
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Ensures the ADMX/ADML administrative templates ship with consistent line endings across every download method, so the tool's source-file hash verification passes no matter how the code is obtained.
Background
The MD5 hashes recorded in
config/tiermodel-admx.jsonandconfig/tiermodel-adml-en-US.jsonare computed over each file's exact bytes — including line endings. The Windows templates were recorded as CRLF; the Office/Edge templates as LF. Because the repo had no.gitattributesrules for.admx/.adml, Git delivered these files with different line endings depending on how they were fetched:TierModel-<ver>.ziprelease assetgit clonewithcore.autocrlf=false/inputA customer who downloaded the "Source code (zip)" (instead of the release asset) hit
Source ADMX file hash mismatchon all Windows templates, which blocks the ADMX deployment.Fix
Mark
*.admxand*.admlasbinaryin.gitattributesso Git stores and delivers their exact bytes unchanged on every path —git archive(which powers the "Source code (zip)"), andgit cloneregardless of the user'score.autocrlf. The 30 affected files are re-staged so their blobs match the recorded hashes.No file content changes — this only fixes line-ending handling. The
TierModel-<ver>.ziprelease asset is byte-identical before and after.Verification
60/60hash match confirmed across all three delivery paths:git archive(source-zip): 60/60 ✅git clone -c core.autocrlf=false: 60/60 ✅git clone -c core.autocrlf=true: 60/60 ✅Also note: this commit adds the repo's first tracked
.gitattributes(the existing Squadmerge=unionrules were only ever a local, untracked file — they are now properly committed alongside the ADMX rules).Release note
Intended to re-release v1.3.1 in place (no version bump — this is a packaging/line-ending fix with no functional code change). After merge, the
v1.3.1tag is moved to this commit so GitHub regenerates the "Source code (zip)" with correct line endings.